package com.proyecto.personas.modelo.servicio;

import com.proyecto.core.Utilidades.UtilConversion;
import com.proyecto.core.Utilidades.UtilString;
import com.proyecto.core.modelo.excepciones.GeneralException;
import com.proyecto.core.modelo.servicio.ServicioGenerico;
import com.proyecto.personas.modelo.dao.TipNipDAO;
import com.proyecto.personas.modelo.dto.CorrelativosPers;
import com.proyecto.personas.modelo.dto.TipNip;

public class ServicioTipoNip extends ServicioGenerico {
	
	public Integer obtenerProximoNumero(TipNip pTipNip) throws GeneralException{
		
		if (pTipNip != null && UtilConversion.caracteraLogico(pTipNip.getAutonumeracion())) {
			TipNip tipNipBuscar = (TipNip)super.consultar(pTipNip.getId());
			Integer proximoNumero = tipNipBuscar.getProximonumero();			
			if (proximoNumero == null || proximoNumero < 0){
				proximoNumero = 1;
			}
			tipNipBuscar.setProximonumero(proximoNumero + 1);
			super.modificar(tipNipBuscar,true);
			return tipNipBuscar.getProximonumero();
		}else{
			return -1;
		}
	}
	
	public String obtenerProximoNumeroString(TipNip pTipNip) throws GeneralException{
		
		if (pTipNip != null && UtilConversion.caracteraLogico(pTipNip.getAutonumeracion())) {
			//TipNip tipNipBuscar = (TipNip)super.consultar(pTipNip.getId());
			
			Integer proximoNumero = 1;
			String proxNumeroString = "";
			
			proximoNumero = obtenerProximoNumero(pTipNip);
			
			if (!UtilString.esVacio(pTipNip.getTippinformato())){				
				Integer longigutNumero  = proximoNumero.toString().trim().length();				
				proxNumeroString = pTipNip.getTippinformato().substring(longigutNumero) + proximoNumero.toString();
			}else {
				proxNumeroString = proximoNumero.toString();
				//pTipNip.setProximonumero(proximoNumero);
				//super.modificar(pTipNip,false);
			}
			return proxNumeroString;			
		}else{
			return null;
		}
	}
}